//package leetcode;
//
//import java.util.Arrays;
//
//class UnionFindSet {
//    public int[] elem;
//    public int usedsize;
//
//    public UnionFindSet(int n) {
//        this.elem = new int[n];
//        Arrays.fill(elem, -1);
//    }
//
//    //查询x的根节点
//    public int findRoot(int x) {
//        if (x < 0) {
//            throw new IndexOutOfBoundsException("下标不合法，是负数");
//        }
//        while (elem[x] >= 0) {
//            x = elem[x];
//        }
//        return x;
//    }
//
//    //查询x y 是不是同一个集合
//    public boolean isSameUnionFindSet(int x, int y) {
//        int index1 = findRoot(x);
//        int index2 = findRoot(y);
//        if (index1 == index2) {
//            return true;
//        }
//        return false;
//    }
//
//    //合并
//    public void union(int x, int y) {
//        int index1 = findRoot(x);
//        int index2 = findRoot(y);
//        if (index1 == index2) {
//            return;
//        }
//        elem[index1] = elem[index1] + elem[index2];
//        elem[index2] = index1;
//    }
//
//    //
//    public int getCount() {
//        int count = 0;
//        for (int x : elem) {
//            if (x < 0) {
//                count++;
//            }
//        }
//        return count;
//    }
//
//    public void print() {
//        for (int x : elem) {
//            System.out.print(x + " ");
//        }
//        System.out.println();
//    }
//
//}
//
//class Solution {
//    public boolean equationsPossible(String[] equations) {
//        UnionFindSet unionFindSet = new UnionFindSet(26);
//        for (int i = 0; i < equations.length; i++) {
//            if (equations[i].charAt(1) == '=') {
//                unionFindSet.union(equations[i].charAt(0) - 'a', equations[i].charAt(3) - 'a');
//            }
//        }
//        for (int i = 0; i < equations.length; i++) {
//            if (equations[i].charAt(1) == '!') {
//                int index1 = unionFindSet.findRoot(equations[i].charAt(0) - 'a');
//                int index2 = unionFindSet.findRoot(equations[i].charAt(3) - 'a');
//                if (index1 == index2) {
//                    return false;
//                }
//            }
//        }
//        return true;
//    }
//}
//
//public class Test2 {
//}
